/******************* File Comments **************************
Filename:		cscombo.js
Description:	This file populates comboboxes with all
	known countries (as of 03/26/2003).  When the user
	selects a country the state combobox will be populated
	with the states associated with the country selected.
Compatibility:
	MSIE 4, 5, 6
	Netscape 4.7, 6, 7
	WebTV
	Opera	
Usage:		I generally have this command executed just before
	the closing < / body > tag.  Also in the onChange event
	of the Country combobox.
Warnings:	There is a bug in IE that requires the focus to 
	be shifted any other control on the form or the defaults
	will be off by one.  There is a fix within the code however 
	if causes focus to be sent to either the country or state
	combobox.  Quick fix would be to add a *.focus();
	event to fire to a textbox on the form.

Example 1:
	...page...
	< SCRIPT >
		FillCountry(document.form1.Country, document.form1.State, 'USA');
		FillState(document.form1.Country, document.form1.State, 'Florida');
		document.form1.Title.focus();
	< / SCRIPT >
	< / body >
	< / html >
	...end...
Example 2:
	 onChange="FillState(document.form1.Country, document.form1.State, 'Florida')"

This file was created by Brian Reeves  (ketapillar'ayat'hotmail.com)
Open Source feel free to take.  I do appreciate feedback as
well.  BTW vote at www.planet-source-code.com thanks.

Created:	@12/01/2002		brian
Modified:	3/26/2003		brian
	Modified so that the whole contents work by passing the
	comboboxes to the function.  Also changed the coding so
	that it resides in a script include.  No longer requires
	minimal ASP.
*************************************************************/

/******************* FillCountry() Comments *****************
This function needs to be called first to populate the country
combobox.  

Created:	@12/01/2002		brian
Modified:	3/26/2003		brian
	Modified to allow the passing of combo's instead of hard
	coding them.  Also created the default capabilities of
	passing a default country to be selected.

Example:  FillCountry(NameOfCountryCombo, NameOfStateCombo, DefaultCountry)
*************************************************************/
function FillCountry(cboCountry, cboState, sDefaultCountry){
	var sDefaultCountry, sDefault, sCountry
		
	cboCountry.options.length=0
	z = 0;
	for(i=0;i<sCountryString.split("|").length;i++){
		sCountry = sCountryString.split("|")[i];

		if (z==1 && navigator.appName=="Microsoft Internet Explorer")
		{
			z = 2;
		}

		if (sDefaultCountry == sCountry) {
			sDefault=true;
			z = 1;
			if (navigator.appName!="Microsoft Internet Explorer"){cboState.focus();}
		}
		else {sDefault=false;}


		
		if (sDefault) {
			cboCountry.options[i]=new Option(sCountry,sCountry,sDefault,sDefault);
		}
		else
		{
			if(z==2 && navigator.appName=="Microsoft Internet Explorer")
			{
				sDefault=true;
				z=0;
				cboCountry.options[i]=new Option(sCountry,sCountry,true,true);
				cboState.focus();
			}
			else
			{
				cboCountry.options[i]=new Option(sCountryString.split("|")[i]);
			}
		}
	}
}
if (navigator.appName=="Netscape"){
isNav=true
}

/******************* FillState() Comments *******************
This function needs to be called after the FillCountry() to
populate the State combobox.  Also from the onChange of the
country combobox.

Created:	@12/01/2002		brian
Modified:	3/26/2003		brian
	Modified to allow the passing of combo's instead of hard
	coding them.  Also created the default capabilities of
	passing a default country to be selected.

Example:  FillState(NameOfCountryCombo, NameOfStateCombo, DefaultState)
*************************************************************/
function FillState(cboCountry, cboState, sDefaultState){
	var sDefaultState, sState, sDefault
		
	if(cboState.options){
		cboState.options.length=0
		for(i=0;i<sStateArray[cboCountry.selectedIndex].split("|").length;i++){
			sState = sStateArray[cboCountry.selectedIndex].split("|")[i];
		
			if(sDefaultState == sState) {
				sDefault=true;
				if (navigator.appName=="Microsoft Internet Explorer"){cboState.focus();}
			} 
			else {sDefault=false;}
		
			if(sDefault) {cboState.options[i]=new Option(sState,sState,sDefault,sDefault)}
			else {cboState.options[i]=new Option(sState,sState);}
		}
	}
}

var sCountryString = "|USA|Canada"
		
var sStateArray = new Array()
sStateArray[0]="";
sStateArray[1]="Alabama|Alaska|Arizona|Arkansas|California|Colorado|Connecticut|Delaware|District of Columbia|Florida|Georgia|Hawaii|Idaho|Illinois|Indiana|Iowa|Kansas|Kentucky|Louisiana|Maine|Maryland|Massachusetts|Michigan|Minnesota|Mississippi|Missouri|Montana|Nebraska|Nevada|New Hampshire|New Jersey|New Mexico|New York|North Carolina|North Dakota|Ohio|Oklahoma|Oregon|Pennsylvania|Rhode Island|South Carolina|South Dakota|Tennessee|Texas|Utah|Vermont|Virginia|Washington|West Virginia|Wisconsin|Wyoming";
sStateArray[2]="Alberta|British Columbia|Manitoba|New Brunswick|Newfoundland|Northwest Territories|Nova Scotia|Nunavut|Ontario|Prince Edward Island|Quebec|Saskatchewan|Yukon Territory";
